/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package documenteditor;

import java.util.ArrayList;

/**
 *
 * @author Usuario
 */
public class cOrigen {
    public ArrayList lstOrigen= new ArrayList();
    
    cOrigen(){}
    
    void addOrigen(cOrg origen){
        if(!existeOrigen(origen)){
            lstOrigen.add(origen);
        }
    }
    
    public boolean existeOrigen(cOrg nombre){
           cOrg origen = new cOrg();
           for(int i=0; i<lstOrigen.size();i++){
               origen = (cOrg)lstOrigen.get(i);
               if(origen.nombre.equals(nombre.nombre)&&(origen.subtipo.equals(nombre.subtipo))&&(origen.tipo==nombre.tipo)){
                   return true;
               }
           }
           return false;
    }
    
    public boolean existeAtributo(int tipo, String nombre, String subtipo, String atributo){
           cOrg origen = new cOrg();
           for(int i=0; i<lstOrigen.size();i++){
               origen = (cOrg)lstOrigen.get(i);
               if(origen.nombre.equals(nombre)&&(origen.subtipo.equals(subtipo))){
                   cAtributo atr = new cAtributo();
                   for(int j=0; j<origen.lstAtributos.size(); j++){
                       atr = (cAtributo) origen.lstAtributos.get(j);
                       if (atr.nombre.equals(atributo)){
                            return true;
                       }
                   }
               }
           }
           return false;
    }
    
    public String getTipo(int tipo, String nombre, String subtipo, String atributo){
           cOrg origen = new cOrg();
           for(int i=0; i<lstOrigen.size();i++){
               origen = (cOrg)lstOrigen.get(i);
               if(origen.nombre.equals(nombre)&&(origen.subtipo.equals(subtipo))){
                   cAtributo atr = new cAtributo();
                   for(int j=0; j<origen.lstAtributos.size(); j++){
                       atr = (cAtributo) origen.lstAtributos.get(j);
                       if (atr.nombre.equals(atributo)){
                            return atr.tipo;
                       }
                   }
               }
           }
           return "";
    }
    
    public String getNomAtributo(int tipo, String nombre, String subtipo, int atributo){
           cOrg origen = new cOrg();
           for(int i=0; i<lstOrigen.size();i++){
               origen = (cOrg)lstOrigen.get(i);
               if(origen.nombre.equals(nombre)&&(origen.subtipo.equals(subtipo))){
                   cAtributo atr = new cAtributo();
                   for(int j=0; j<origen.lstAtributos.size(); j++){
                       atr = (cAtributo) origen.lstAtributos.get(j);
                       if (atr.atributo==atributo){
                            return atr.nombre;
                       }
                   }
               }
           }
           return "";
    }
    
   public void Imprimir(){
           cOrg origen = new cOrg();
           String strCad="";
           for(int i=0; i<lstOrigen.size();i++){
               origen = (cOrg)lstOrigen.get(i);
                   strCad=origen.tipo+"|"+origen.nombre +"|"+origen.subtipo+"\n";
                   cAtributo atr = new cAtributo();
                   for(int j=0; j<origen.lstAtributos.size(); j++){
                       atr = (cAtributo) origen.lstAtributos.get(j);
                       strCad=strCad+"\t"+atr.atributo+"|"+atr.tipo+"|"+atr.nombre+"\n";
                    }
               System.out.println(strCad);
           }
    }

}
